package servlet;

import pojo.Dept;
import service.DeptService;
import service.impl.DeptServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;


@WebServlet(urlPatterns = "/dept")
public class DeptServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doPost(req, resp);
        }

        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            DeptService deptService = new DeptServiceImpl();
            //请求编码设置
            req.setCharacterEncoding("UTF-8");
            String action = req.getParameter("action");
            //判断action 来区分是哪种操作
            if ("list".equals(action)) {
                String dname = req.getParameter("dname");

                Dept condition = new Dept(dname);
                List<Dept> depts = deptService.findAll(condition);
                // 把数据放到请求域中
                req.setAttribute("depts", depts);
                req.setAttribute("condition", condition);
                //在哪个页面显示
                req.getRequestDispatcher("/list.jsp").forward(req, resp);
            }else if (("delete".equals(action))) {
                // 获取参数
                String sid = req.getParameter("id");
                int id = Integer.parseInt(sid);
                String dname = req.getParameter("dname");
                int result = deptService.deleteDeptById(id);
                if (result > 0) {
                    // 重定向
                    resp.sendRedirect("dept?action=list");
                } else {
                }
            }

            else if (("add".equals(action))){
                String dname = req.getParameter("dname");

                int result = deptService.addDept(new Dept(dname));
                if (result > 0) {
                    // 重定向
                    resp.sendRedirect("dept?action=list");
                } else {

                }
            }

            else if (("toupdate".equals(action))){
                // 获取参数
                String sid = req.getParameter("id");
                int id = Integer.parseInt(sid);

                Dept dept = deptService.findDeptById(id);
                // 把数据放到请求域中
                req.setAttribute("dept", dept);
                //在哪个页面显示
                req.getRequestDispatcher("/updateDept.jsp").forward(req, resp);
            }
            else if (("update".equals(action))){
                String sid = req.getParameter("id");
                int id = Integer.parseInt(sid);

                String dname = req.getParameter("dname");

                int result = deptService.updateDept(new Dept(id,dname));
                if (result > 0) {
                    // 重定向
                    resp.sendRedirect("dept?action=list");
                } else {

                }

            }
        }
}
